home *** CD-ROM | disk | FTP | other *** search
- Wheel support in DOS real-mode mouse drivers
- API version 1.0
-
- Summary:
-
- This document describes an extension for the commonly used INT 33h Mouse
- API to add wheel (Z axis) support. This draft introduces extra functions
- and additions to the standard INT 33 API. These new and changed functions
- are mentioned in the technote.txt as the WheelAPI.
-
- ---------------------------------------------------------------------
- New functions:
-
- INT 33/0011 - Check wheel support and get capabilities flags
- AX = 003Fh
- Return: AX = 574Dh ('WM' in assembly) if Wheel API is supported by driver
- BX = Capabilities flag (all bits reserved)
- CX = Capabilities flag
- Bit(s) Description
- ------ -----------
- 0 Pointing device supports wheel
- 1-15 Reserved
- Note: this function should be called before accessing other wheel features
-
- ---------------------------------------------------------------------
- Changes in the original INT 33h functions:
-
- INT 33/0000 - Reset driver and read status
- Note: this call clears the wheel movement counter
-
- INT 33/0003 - Get cursor position, buttons status and wheel counter
- AX = 0003h
- Return: BL = buttons status
- BH = 8-bit signed counter of wheel movement since last call
- CX = column
- DX = row
- Notes: returned wheel counter contains all wheel movements accumulated since
- the last call to INT 33/AX=0003h, INT 33/AX=0005h/BX=-1 or
- INT 33/AX=0006h/BX=-1
- positive value of wheel counter means downward wheel movement
- this call clears the wheel movement counter
-
- INT 33/0005 - Get button press or wheel movement data
- AX = 0005h
- BX = button number or -1 for wheel
- Return: AL = buttons states
- AH = 8-bit signed counter of wheel movement
- ---button info---
- BX = number of times specified button has been pressed since last call
- CX = column where specified button was last pressed
- DX = row where specified button was last pressed
- ---wheel info---
- BX = 16-bit signed counter of wheel movement since last call
- CX = column where wheel was last moved
- DX = row where wheel was last moved
- Notes: returned wheel counters contains all wheel movements accumulated since
- the last call to INT 33/AX=0003h, INT 33/AX=0005h/BX=-1 or
- INT 33/AX=0006h/BX=-1
- positive value of wheel counter means downward wheel movement
- this call clears the wheel movement counter for BX=-1
-
- INT 33/0006 - Get button release or wheel movement data
- AX = 0006h
- BX = button number or -1 for wheel
- Return: AL = buttons states
- AH = 8-bit signed counter of wheel movement
- ---button info---
- BX = number of times specified button has been released since last call
- CX = column where specified button was last released
- DX = row where specified button was last released
- ---wheel info---
- BX = 16-bit signed counter of wheel movement since last call
- CX = column where wheel was last moved
- DX = row where wheel was last moved
- Notes: returned wheel counters contains all wheel movements accumulated since
- the last call to INT 33/AX=0003h, INT 33/AX=0005h/BX=-1 or
- INT 33/AX=0006h/BX=-1
- positive value of wheel counter means downward wheel movement
- this call clears the wheel movement counter for BX=-1
-
- INT 33/000C - Define User Interrupt Routine
- INT 33/0014 - Exchange User Interrupt Routines
- Notes: on entry, bit 7 of CX (call mask) indicates that the user routine
- will be called on a wheel movement
- the user routine will be called with BH holding the 8-bit signed
- counter of wheel movement since the last call of the routine
-
- INT 33/0021 - Software reset
- Note: this call clears the wheel movement counter
-